<?php
    
	class RequestItemDataAccessMySQL implements iRequestItemDataAccess {
		
		public function buildObject($result) {
			
			$requestItem = new RequestItem();
			
			$requestItem->setRequestItemId($result->requestItemId);
			$requestItem->setRequestId($result->requestId);
			$requestItem->setQuantity($result->quantity);
			$requestItem->setDescription($result->description);

			return $requestItem;
		}
		
		public function save($requestItem, $dataBaseConnection) {
			
			$parameters["REQUESTID"] = $requestItem->getRequestId();
			$parameters["DESCRIPTION"] = "'" . $requestItem->getDescription() . "'";
			$parameters["QUANTITY"] = $requestItem->getQuantity();
			
			$query = buildQuery("queryInsertRequestItem", $parameters);
			if (!is_bool($query)) {
				if ($result = $dataBaseConnection->query($query)) {
						
					return $dataBaseConnection->getLastInsertId();
				}
				else {
					return -1;
				}
			} else {
				return -1;
			}
			
		}
		
		public function deleteRequestItem($requestItem, $dataBaseConnection) {
			
			if ($requestItem->getRequestItemId() != null){
				$parameters["REQUESTITEMID"] = $requestItem->getRequestItemId();
			}else {
				$parameters["REQUESTITEMID"] = "NULL";
			}
			
			if ($requestItem->getRequestId() != null){
				$parameters["REQUESTID"] = $requestItem->getRequestId();
			}else {
				$parameters["REQUESTID"] = "NULL";
			}
					
			$query = buildQuery("queryDeleteRequestItem", $parameters);
			if (!is_bool($query)) {
				$result = $dataBaseConnection->query($query);
				
				return $result;
			} else {
				return false;
			}
		}
		
		public function selectRequestItem($requestItem, $dataBaseConnection) {
			
			$resultArray = array();

			if ($requestItem->getRequestItemId() != null){
				$parameters["REQUESTITEMID"] = $requestItem->getRequestItemId();
			}else {
				$parameters["REQUESTITEMID"] = "NULL";
			}
			if ($requestItem->getRequestId() != null){
				$parameters["REQUESTID"] = $requestItem->getRequestId();
			}else {
				$parameters["REQUESTID"] = "NULL";
			}
			if ($requestItem->getQuantity() != null){
				$parameters["QUANTITY"] = $requestItem->getQuantity();
			}else {
				$parameters["QUANTITY"] = "NULL";
			}
			if ($requestItem->getDescription() != null){
				$parameters["DESCRIPTION"] = "'" . $requestItem->getDescription() . "'";
			}else {
				$parameters["DESCRIPTION"] = "NULL";
			}
			
			$query = buildQuery("querySelectRequestItem", $parameters);

			if (!is_bool($query)) {
				if ($result = $dataBaseConnection->query($query)) {
					while($row = mysql_fetch_object($result)) {
						array_push($resultArray, $this->buildObject($row));	
					}
					return $resultArray;	
				}
				else {
					return NULL;
				}
			} else {
				return NULL;
			}
		}
		
	}
    
?>